/**
 * 
 */
package com.study.io.netty;

import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerAdapter;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.channel.SimpleChannelInboundHandler;

/**
 * @author Administrator
 * @date 2019年6月9日
 */

public class ServerChannelHander extends SimpleChannelInboundHandler  {
	
    /*捕获数据在通道传输过程中的异常*/
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        System.err.println("错误："+cause.getMessage());
    }
//    /*接收数据，并响应*/
//    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
//    	System.out.println("ServerChannelHander receive msg: " + msg.toString());
//    	
//    	//写消息：先得到channel，在写如通道然后flush刷新通道把消息发出去。
//    	ctx.channel().writeAndFlush("服务器端收到的消息: " + msg);
//
//      //把消息往下一个Handler传
//        ctx.fireChannelRead(msg);
//    }
	/* (non-Javadoc)
	 * @see io.netty.channel.SimpleChannelInboundHandler#channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.Object)
	 */
	@Override
	protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
		System.out.println("ServerChannelHander channelRead0 receive msg: " + msg.toString());
    	
    	//写消息：先得到channel，在写如通道然后flush刷新通道把消息发出去。
    	ctx.channel().writeAndFlush("服务器端收到的消息: " + msg);
    	
      //把消息往下一个Handler传
      ctx.fireChannelRead(msg);
	}
}